// pages/pay/pay.js
let {
    getcartList
} = require("../../api/details");
let {
    getaddress,
    postaddress,
    putaddress,
    deletaddress,
    // 支付的接口
    getorderlist,
    postorderlist,
    deletorderlist,
    putorderlist,
    // 删除购物车数据
    deletebyId
} = require("../../api/car");


Page({

    /**
     * 页面的初始数据
     */
    data: {
        total: 0,
        goodsList: [
            // {
            //   id:1,
            //   name:"小米手机",
            //   img:"https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/d9d7f31258a1f84a277918cecab14aaa.jpg?f=webp&w=516&h=420",
            //   price:"2999",
            //   priceOld:"3999",
            //   num:1,
            //   checked:false
            // },
            // {
            //   id:2,
            //   name:"小米手机2",
            //   img:"https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/d9d7f31258a1f84a277918cecab14aaa.jpg?f=webp&w=516&h=420",
            //   price:"2999",
            //   priceOld:"3999",
            //   num:1,
            //   checked:false
            // },
        ],


        flag: false, //添加地址时的默认选项
        showflag: false, //显示添加地址(这是添加地址的栏)
        determine_flag: false, //显示地址页面(界面的显示)
        name: '', //姓名
        emid: '', //手机号
        ress: '', //收货地址
        didhs: '', //详细地址
        addressList: [], //地址数据
        modify_flag: false, //点击修改出现修改界面（修改上弹框）
        modify_index: 0, //修改数据的下标
        add_index: 0, //默认选框
    },
    //输入框触发
    addFun(e) {
        console.log(e.target.dataset.name, '对应值');
        console.log(e.detail.value, '值');
        this.setData({
            [e.target.dataset.name]: e.detail.value
        })
    },

    //切换选框
    activeFun(e) {
        console.log(e.target.dataset.id);
        this.data.add_index = e.target.dataset.id
        this.setData(this.data)
    },
    //切换默认地址
    // 11月4修改
    defaultFun(e) {
        getaddress().then(data => {
            let loacl_list = data.data
            loacl_list.forEach((item, index) => {
                if (index == e.target.dataset.id) {
                    this.defaddress(item, true)
                } else {
                    this.defaddress(item, false)
                }
            })
            // this.data.addressList = loacl_list
            // console.log(loacl_list);
            // this.setData(this.data)
        })

    },

    // 修改默认地址方法
    defaddress(list, choose) {
        let infolist = {
            id: list.id,
            ress: list.ress,
            didhs: list.didhs,
            name: list.name,
            emid: list.emid,
            flag: choose == true ? 1 : 0
        }
        // console.log(infolist);
        // 修改默认地址
        putaddress(infolist)
        this.onLoad()
    },

    //设置默认地址
    morenFun() {
        this.data.flag = !this.data.flag
        this.setData(this.data)
    },

    //添加新增地址
    setadd() {
        // 这两不用管
        this.data.showflag = !this.data.showflag
        this.data.modify_flag = false

        let list = []
        list.push({
            name: this.data.name,
            emid: this.data.emid,
            ress: this.data.ress,
            didhs: this.data.didhs,
            flag: this.data.flag
        })
        if (list[0].flag == 1) {
            // 将所有数据修改
            getaddress().then(data => {
                let loacl_list = data.data
                loacl_list.forEach((item) => {
                    this.defaddress(item, false)
                })
            })
        }
        // 添加数据
        postaddress(list[0])
        // this.onLoad()

        // 清空数据
        this.setData({
            name: "",
            emid: "",
            ress: "",
            didhs: "",
            flag: ""
        })
        this.onLoad()



    },


    //修改地址显示(不用修改)

    setlist_Fun(e) {
        this.data.modify_flag = true
        this.data.showflag = true
        this.data.modify_index = e.target.dataset.id
        this.data.flag = this.data.addressList[e.target.dataset.id].flag
        this.data.emid = this.data.addressList[e.target.dataset.id].emid
        this.data.ress = this.data.addressList[e.target.dataset.id].ress
        this.data.didhs = this.data.addressList[e.target.dataset.id].didhs
        this.data.name = this.data.addressList[e.target.dataset.id].name
        this.setData(this.data)
        // console.log(this.data);
    },
    // 确认修改地址
    // 11月6修改这里
    setaddFun() {
        this.data.showflag = !this.data.showflag
        this.data.modify_flag = false
        let setaddData = []
        setaddData.push({
            id: this.data.addressList[this.data.modify_index].id, //点击编辑数据的id
            flag: this.data.flag == true ? 1 : 0,
            emid: this.data.emid,
            ress: this.data.ress,
            didhs: this.data.didhs,
            name: this.data.name
        })

        if (setaddData[0].flag == 1) {
            // 将所有数据修改
            getaddress().then(data => {
                let loacl_list = data.data
                loacl_list.forEach((item) => {
                    this.defaddress(item, false)
                })
                // 修改数据
                putaddress(setaddData[0])
                this.onLoad()
            })
        }
        // 清空数据
        this.setData({
            name: "",
            emid: "",
            ress: "",
            didhs: "",
            // flag: ""
            flag: false
        })



    },



    //删除地址
    dellist_Fun(e) {
        // console.log(e.target.dataset.id,"删除");
        // console.log(e.target.dataset.id);
        getaddress().then(data => {
            let loacl_list = data.data
            loacl_list.forEach((item, index) => {
                if (index == e.target.dataset.id) {
                    this.deletelist(item.id)
                }
            })
            // this.data.addressList = loacl_list
            // console.log(loacl_list);
            // this.setData(this.data)
            this.onLoad()
        })
    },

    // 删除地址自定义方法
    deletelist(id) {
        // 根据id删除
        deletaddress(id)
        this.onLoad()
        // console.log(id);
    },


    //显示地址栏
    determineFun() {
        this.data.determine_flag = true;
        this.setData(this.data)
    },

    //关闭隐藏地址栏
    deterFun() {
        this.data.determine_flag = false;
        this.setData(this.data)
    },


    //隐藏添加地址
    setflag() {
        this.data.showflag = false
        this.setData(this.data)
    },

    //显示添加地址
    showadd() {
        this.data.showflag = !this.data.showflag
        this.setData(this.data)
    },





    // 计算总价格
    totalData() {
        let num = 0;
        let data = this.data.goodsList.reduce((total, item) => {
            if (item.checked) {
                num++;
                return total += item.price * item.num;
            } else {
                return total
            }
        }, 0)
        this.setData({
            total: data,
        })
    },




    // 跳转订单页
    // 11月6号修改这个
    goOrder() {
        // console.log(e);
        wx.showModal({
            title: '支付商品',
            success: (res) => {
                if (res.confirm) {
                    // console.log('用户点击确定')
                    this.setOrderList(2); //生成订单--待发货
                } else if (res.cancel) {
                    // console.log('用户点击取消')
                    this.setOrderList(1); //生成订单--待支付
                }
                // 跳转订单页面
                wx.navigateTo({
                    url: '/pages/order/order',
                })
            }
        })
        // 点击支付后，删除从“立即购买”过来的缓存数据
        // wx.removeStorageSync('goodsDetails')

        // 删除购物车的选中的id
        this.data.goodsList.forEach(item => {
            deletebyId(item.id)
            console.log("购物车id",item.id);
        });




    },

    // 生成订单
    // 1.待支付 2.待发货 3.待收货 4.待评价
    setOrderList(type) { //type是接收的数据
        // 构造订单数据
        // 地址信息
        let addressList = {
            name: this.data.addressList[this.data.add_index].name,
            phone: this.data.addressList[this.data.add_index].emid,
            address: this.data.addressList[this.data.add_index].ress + this.data.addressList[this.data.add_index].didhs
        }
        let orderData = {
            orderId: JSON.stringify(new Date().getTime()).toString(), //时间生成订单号（转字符串）
            // orderLists: this.data.goodsList, //商品列表
            orderLists: JSON.stringify(this.data.goodsList).toString(), //商品列表（转字符串）
            type: type,
            total: this.data.total, //总价格
            address: JSON.stringify(addressList).toString() //地址信息（转字符串）
        };
        console.log("生成订单", orderData);


        // 添加订单信息
        postorderlist(orderData).then(data => {
            console.log(data);
        })

        // // 删除订单数据（删除购物车数据即可）


    },

    // 初始化数据
    getlistFun() {
        getaddress().then(data => {
            if (data.data && data.data != null) {
                this.data.addressList = data.data
                this.data.addressList.forEach((item, index) => {
                    if (item.flag == true) { //如果flag是true
                        console.log(index, '初始化下标');
                        this.data.add_index = index
                        this.setData(this.data)
                    }
                })
            } else {
                this.data.addressList
            }
            console.log(this.data.addressList, '收货地址初始化数据');
        })

    },

    // 数据请求功能
    InfoData() {
        //   获取购物车数据
        getcartList().then(data => {
            let goodsCarList = data.data;
            // console.log("购物车数据", data.data);
            let list_ = []
            // console.log("购物车缓存数据", wx.getStorageSync('goodsCarList'));
            goodsCarList.forEach(item => {
                // console.log(item);
                list_.push({
                    id: item.id,
                    name: item.name,
                    img: JSON.parse('[' + item.img + ']').map(items => items.url).toString(), //数据处理
                    price: item.price,
                    priceOld: (item.price + new Number(item.priceOld)),
                    num: item.num,
                    checked: item.checked
                })
            })
            let dataLists = list_.filter(item => item.checked);
            // this.setData({
            //     goodsList: dataLists
            // })
            this.setData({
                goodsList: dataLists
            })
            // console.log("goodsCarList", list_);
            this.totalData(); //总数量
        })

    },



    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        // 接收的是点击购买的数据
        console.log(options.id == null ? 111 : 222);
        // 如果没有数据传过来
        if (options.id == null) {
            this.getlistFun()
            // 获取缓存数据
            this.InfoData()
        } else {
            // this.getlistFun()
            console.log(options, "无数据");
            this.getlistFun()
            let list_ = []
            let _Listdata = wx.getStorageSync('goodsDetails')
            // _Listdata.forEach(item => {
            //     // console.log(item);
                list_.push({
                    id: _Listdata.id,
                    name: _Listdata.name,
                    img: JSON.parse('[' + _Listdata.img + ']').map(items => items.url).toString(), //数据处理
                    price: _Listdata.price,
                    priceOld: (_Listdata.price + new Number(_Listdata.priceOld)),
                    num: _Listdata.num,
                    checked: _Listdata.checked
                })
            // })
            // console.log(list_);
            this.setData({
                goodsList: list_
            })
            this.totalData(); //总数量
        }
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
        console.log("onShow");
        // let goodsCarList = this.InfoData();
        // console.log(goodsCarList);
        // let dataLists = goodsCarList.filter(item => item.checked);
        // this.setData({
        //     goodsList: dataLists
        // })

        // this.totalData(); //计算总价格
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})